package com.kujie.access.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kujie.access.domain.query.PayManageQuery;
import com.kujie.access.domain.vo.PayManageVo;
import com.kujie.common.mybatis.core.page.PageQuery;
import jakarta.validation.constraints.NotEmpty;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 缴费管理 api
 *
 * @author jyy
 * @date 2025-05-26
 */
public interface IPayService {

    /**
     * 获取缴费管理分页
     *
     * @param query     入参
     * @param pageQuery 分页入参
     * @return Page<PayManageVo>
     */
    Page<PayManageVo> getPayManagePage(PayManageQuery query, PageQuery pageQuery);

    /**
     * 新增缴费管理
     *
     * @param query   入参
     * @param isValid 是否校验数据
     * @return int
     */
    int addPayManage(PayManageQuery query, boolean isValid);

    /**
     * 修改缴费管理
     *
     * @param query   入参
     * @param isValid 是否校验数据
     * @return int
     */
    int updatePayManage(PayManageQuery query, boolean isValid);

    /**
     * 修改缴费管理
     *
     * @param ids     入参
     * @param isValid 是否校验数据
     * @return int
     */
    int deletePayManage(@NotEmpty(message = "主键不能为空") List<Long> ids, boolean isValid);

    /**
     * 获取缴费管理列表
     *
     * @param query 入参
     * @return List<PayManageVo>
     */
    List<PayManageVo> getPayManageList(PayManageQuery query);

    /**
     * 导入缴费管理模板
     *
     * @param file 文件流
     * @return String
     */
    String importPayManage(MultipartFile file);

    /**
     * 查询缴费详情
     *
     * @param id 主键id
     * @return 缴费详情
     */
    PayManageVo detail(Long id);
}
